package tum0r.webengine.models.database.init

import tum0r.webengine.annotations.TableField
import java.lang.reflect.Field

/**
 * 说明: 数据库表键类型
 *
 * 创建者: tum0r
 *
 * 时间: 2021/8/24 15:23
 */
class Column : Comparator<Column> {
    /**
     * 字段名
     */
    @JvmField
    var COLUMN_NAME: String? = null

    /**
     * 字段类型
     */
    @JvmField
    var COLUMN_TYPE: String? = null

    /**
     * 关联的字段
     */
    @JvmField
    var field: Field? = null

    /**
     * 字段属性
     *     PRI 主键
     *     UNI 唯一索引
     *     MUL 普通索引
     */
    @JvmField
    var COLUMN_KEY: String? = null

    /**
     * 字段附加属性
     *     auto_increment 自增
     */
    @JvmField
    var EXTRA: String? = null

    /**
     * 索引名称
     */
    @JvmField
    var INDEX_NAME: String? = null

    /**
     * 索引长度
     */
    @JvmField
    var SUB_PART = 0

    /**
     * 字段注解
     */
    @JvmField
    var tableField: TableField? = null

    /**
     * 按照列名排序
     */
    override fun compare(o1: Column?, o2: Column?): Int = o1?.COLUMN_NAME?.compareTo(o2?.COLUMN_NAME!!)!!
}